// var i;
// var AL_GAME_HUA_Common = require("./AL_GAME_HUA_Common");
// var c = cc._decorator;
// var l = c.ccclass;
// var u = c.property;
// var p = c.menu;
// var f = c.requireComponent;
// var d =
//     (c.executeInEditMode,
//     (function (e) {
//         function t() {
//             var t = (null !== e && e.apply(this, arguments)) || this;
//             t.node_video = null;
//             t.node_share = null;
//             t.autoCallback = !1;
//             t.location = "reward";
//             t._qiehuan_toggle = !1;
//             t.button = null;
//             return t;
//         }
//         __extends(t, e);
//         Object.defineProperty(t.prototype, "qiehuan_toggle", {
//             get: function () {
//                 return this._qiehuan_toggle;
//             },
//             set: function (e) {
//                 this._qiehuan_toggle = e;
//                 this.qiehuan_anniu(e ? 2 : 1);
//             },
//             enumerable: !1,
//             configurable: !0
//         });
//         t.prototype.qiehuan_zhuangtai = function () {
//             var e = ailin_sdk_manager.huoquFenxiangHuoShipinZhuangtai();
//             this.qiehuan_anniu(e);
//         };
//         t.prototype.qiehuan_anniu = function (e) {
//             1 == e
//                 ? ((this.node_video.active = !1), (this.node_share.active = !0))
//                 : ((this.node_video.active = !0), (this.node_share.active = !1));
//         };
//         t.prototype.onLoad = function () {
//             cc.game.on("shareOrVideoSuccess", this.qiehuan_zhuangtai, this);
//             this.qiehuan_zhuangtai();
//             this.button = this.node.getComponent(cc.Button);
//             if (this.autoCallback) {
//                 var e;
//                 var t = this;
//                 var n = this.button.clickEvents;
//                 var o = function (o) {
//                     var i = n[o];
//                     var r = i.target;
//                     var a = i.handler;
//                     var c = i.component;
//                     var l = (i.customEventData, cc.js.getClassByName(c));
//                     var u = r.getComponent(l);
//                     return cc.isValid(u)
//                         ? "function" != typeof (e = u[a])
//                             ? "continue"
//                             : void (u[a] = function (n) {
//                                   AL_GAME_HUA_Common.Common.showVideo({
//                                       location: t.location,
//                                       success: function () {
//                                           e.apply(u, n);
//                                       },
//                                       completed: function () {
//                                           u[a] = e;
//                                       }
//                                   });
//                               })
//                         : "continue";
//                 };
//                 for (var i = 0; i < n.length; i++) {
//                     o(i);
//                 }
//             }
//         };
//         t.prototype.onDestroy = function () {
//             cc.game.off("shareOrVideoSuccess", this.qiehuan_zhuangtai, this);
//         };
//         __decorate([u(cc.Node)], t.prototype, "node_video", void 0);
//         __decorate([u(cc.Node)], t.prototype, "node_share", void 0);
//         __decorate(
//             [
//                 u({
//                     tooltip: "自动执行视频调用逻辑，成功后调用回调方法"
//                 })
//             ],
//             t.prototype,
//             "autoCallback",
//             void 0
//         );
//         __decorate(
//             [
//                 u({
//                     tooltip: "位置",
//                     visible: function () {
//                         return this.autoCallback;
//                     }
//                 })
//             ],
//             t.prototype,
//             "location",
//             void 0
//         );
//         __decorate([u], t.prototype, "_qiehuan_toggle", void 0);
//         __decorate(
//             [
//                 u({
//                     tooltip: "切换按钮状态",
//                     displayName: "切换"
//                 })
//             ],
//             t.prototype,
//             "qiehuan_toggle",
//             null
//         );
//         return __decorate([l, p("自定义组件/ShareOrVideoButton"), f(cc.Button)], t);
//     })(cc.Component));
// exports.default = d;



const AL_GAME_HUA_Common = require("./AL_GAME_HUA_Common");
const { ccclass, property, menu, requireComponent, executeInEditMode } = cc._decorator;

/**
 * @class ShareOrVideoButton
 * @description 自定义组件，处理分享或视频按钮切换逻辑
 */
@ccclass
@menu("自定义组件/ShareOrVideoButton")
@requireComponent(cc.Button)
@executeInEditMode
class ShareOrVideoButton extends cc.Component {
    @property(cc.Node) node_video = null;
    @property(cc.Node) node_share = null;

    /**
     * @property {boolean} autoCallback - 自动执行视频调用逻辑，成功后调用回调方法
     */
    @property({
        tooltip: "自动执行视频调用逻辑，成功后调用回调方法"
    })
    autoCallback = false;

    /**
     * @property {string} location - 位置
     */
    @property({
        tooltip: "位置",
        visible() {
            return this.autoCallback;
        }
    })
    location = "reward";

    /**
     * @property {boolean} _qiehuan_toggle - 内部切换状态
     */
    @property _qiehuan_toggle = false;

    /**
     * @property {boolean} qiehuan_toggle - 切换按钮状态
     */
    @property({
        tooltip: "切换按钮状态",
        displayName: "切换"
    })
    get qiehuan_toggle() {
        return this._qiehuan_toggle;
    }
    set qiehuan_toggle(value) {
        this._qiehuan_toggle = value;
        this.qiehuan_anniu(value ? 2 : 1);
    }

    button = null;

    /**
     * 切换状态
     */
    qiehuan_zhuangtai() {
        const shareOrVideo = ailin_sdk_manager.huoquFenxiangHuoShipinZhuangtai();
        this.qiehuan_anniu(shareOrVideo);
    }

    /**
     * 切换按钮状态
     * @param {number} state - 状态值，1为分享，其他为视频
     */
    qiehuan_anniu(state) {
        if (state === 1) {
            this.node_video.active = false;
            this.node_share.active = true;
        } else {
            this.node_video.active = true;
            this.node_share.active = false;
        }
    }

    /**
     * 生命周期钩子，加载时执行
     */
    onLoad() {
        cc.game.on("shareOrVideoSuccess", this.qiehuan_zhuangtai, this);
        this.qiehuan_zhuangtai();
        this.button = this.node.getComponent(cc.Button);

        if (this.autoCallback) {
            const clickEvents = this.button.clickEvents;
            clickEvents.forEach((clickEvent, index) => {
                const { target, handler, component } = clickEvent;
                const customEventData = clickEvent.customEventData;
                const classByName = cc.js.getClassByName(component);
                const componentInstance = target.getComponent(classByName);

                if (cc.isValid(componentInstance)) {
                    const originalHandler = componentInstance[handler];
                    if (typeof originalHandler === 'function') {
                        componentInstance[handler] = (event) => {
                            AL_GAME_HUA_Common.Common.showVideo({
                                location: this.location,
                                success: () => {
                                    originalHandler.apply(componentInstance, event);
                                },
                                completed: () => {
                                    componentInstance[handler] = originalHandler;
                                }
                            });
                        };
                    }
                }
            });
        }
    }

    /**
     * 生命周期钩子，销毁时执行
     */
    onDestroy() {
        cc.game.off("shareOrVideoSuccess", this.qiehuan_zhuangtai, this);
    }
}

export default ShareOrVideoButton;
